#include <12864.h> 
#include <init.h>
#define uint unsigned int 
#define uchar unsigned char
//P3.7RW P3.6E
sbit CS=P1^4; 
sbit SID=P3^7;   
sbit SCLK=P3^6;  

extern uchar str[4][16];
extern uchar table[16][2];

void delay_1ms(uint x) 
{ 
uint i,j; 
for(j=0;j<x;j++)  
	for(i=0;i<110;i++); 
}

void send_command(uchar command_data) 
{ 
	uchar i; 
	uchar i_data;
	i_data=0xf8; 
	CS=1; 
	SCLK=0; 
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1; 
		} 
	i_data=command_data; 
	i_data&=0xf0;
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1; 
		} 
	i_data=command_data; 
	i_data<<=4;
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1; 
		} 
	CS=0; 
	delay_1ms(1); 
} 
void send_data(uchar command_data) 
{ 
	uchar i; 
	uchar i_data;
	i_data=0xfa;  
	CS=1; 
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1;  
		} 
	i_data=command_data; 
	i_data&=0xf0; 
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1; 
		} 
	i_data=command_data;
	i_data<<=4; 
	for(i=0;i<8;i++) 
		{ 
			SID=(bit)(i_data&0x80); 
			SCLK=0; 
			SCLK=1; 
			i_data=i_data<<1; 
		} 
	CS=0; 
	delay_1ms(1);  
}
void lcd_init() 
{ 
	delay_1ms(100); 
	send_command(0x30); /*??8?????,???????*/ 
	send_command(0x02); /*?DDRAM*/ 
	send_command(0x06); /*?????????*/  
	send_command(0x0c); /*?????,???,???*/ 
	send_command(0x01); /*???????*/ 
	send_command(0x80); /*????????*/ 

}


void display()
{
	uchar table[4]={0x80,0x90,0x88,0x98};
		uchar i;uchar a;
    for(i=0;i<4;i++)
    {
      str[i][2]=' ';
			str[i][3]=' ';
			str[i][6]=' ';
			str[i][7]=' ';
			str[i][10]=' ';
			str[i][11]=' ';
			str[i][14]=' ';
			str[i][15]=' ';
    }
	  for(i=0;i<4;i++)
	  {
		  send_command(table[i]);
		  for (a=0;a<15;a++)
		  {
			  send_data(str[i][a]);
		  }
	 }
}